# 导入ADC0832模块（需确保ADC0832.py在同一目录）
import ADC0832
# 导入时间模块用于延时操作
import time

def init():
    """初始化ADC芯片硬件配置"""
    # 调用ADC0832模块的setup函数（使用默认BCM引脚编号）
    ADC0832.setup()
    
    # 被注释的原始setup定义（使用物理引脚编号模式）
    # 注意：若取消注释会修改GPIO模式为BOARD，与ADC0832模块的BCM模式冲突
    #def setup(cs=11,clk=12,dio=13):  # 物理引脚编号11/12/13（对应BCM17/18/27）
    #   global ADC_CS, ADC_CLK, ADC_DIO
    #   ADC_CS=cs
    #   ADC_CLK=clk
    #   ADC_DIO=dio
    #   GPIO.setwarnings(False)
    #   GPIO.setmode(GPIO.BOARD)       # 物理引脚编号模式
    #   GPIO.setup(ADC_CS, GPIO.OUT)  # 配置片选引脚  
    #   GPIO.setup(ADC_CLK, GPIO.OUT) # 配置时钟引脚

def loop():
    """主循环持续读取电压值"""
    while True:
        # 获取ADC数值（默认通道0）
        # ADC0832采用8位分辨率，返回0-255对应0-3.3V
        digitalVal=ADC0832.getResult()
        
        # 原始功能注释（保留不改动）：
        # Get ADC result, input channal
        # getResult()函数代码实现ADC0832工作原理
        # 得到0~255之间的一个数
        # 详细参见ADC0832.py
        
        # 将数字量转换为电压值（3.3V参考电压）
        # 公式：电压 = 3.3V * (数字量/255)
        print(3.3*float(digitalVal)/255)
        
        # 200ms间隔采样（约5Hz采样率）
        time.sleep(0.2)

if __name__=='__main__':
    # 程序入口点
    init()  # 初始化硬件
    
    try:
        loop()  # 进入主循环
    except KeyboardInterrupt:
        # 捕获Ctrl+C信号后清理GPIO
        ADC0832.destroy() # 调用GPIO.cleanup释放引脚
        print("The end!")  # 退出提示